package org.exam.system.interceptor;

import org.apache.el.parser.Token;
import org.exam.system.jwt.JwtUtil;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@Component
public class LoginInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        if ("front".equals(request.getHeader("requestType"))) {
            return true;
        }


        String token = request.getHeader("Token");
        if (token != null) {
            try {
//            解析token
                JwtUtil.parseJwtToken(token);
//                放行
                return true;
            } catch (Exception e) {
                response.setContentType("application/json;charset-utf-8");
//                告诉浏览器我给你相应一个json数据,如果有中文请使用中文编码[后端给前端相应的是一个json更合适的字符串]
                //告诉浏览器之后,会自动讲json字符串转为json对象
                response.getWriter().print("{\"success\":false,\"message\":\"toLogin\"}");//
                return false;
            }
        } else {
//            相应给前端一个json数据让前端去跳转
            response.setContentType("application/json;charset-utf-8");
//                告诉浏览器我给你相应一个json数据,如果有中文请使用中文编码[后端给前端相应的是一个json更合适的字符串]
            //告诉浏览器之后,会自动讲json字符串转为json对象
            response.getWriter().print("{\"success\":false,\"message\":\"toLogin\"}");//
        }
        return false;

    }
}
